//该文件创建store
import Vuex from 'vuex'
//引入vue
import Vue from 'vue'
Vue.use(Vuex)
//求和相关的配置
const countOptions = {
    namespaced: true,//使用命名空间下面名字才能在组件使用
    actions: {
        jia(context, value) {
            context.commit('JIA', value)
        },
        jian(context, value) {
            context.commit('JIAN', value)
        },
        jiaOdd(context, value) {
            if (context.state.sum % 2) {
                context.commit('JIA', value)
            }
        },
        jiaWait(context, value) {
            setTimeout(() => {
                context.commit('JIA', value)
            }, 300);
        }
    },
    mutations: {
        JIA(state, value) {
            state.sum += value
        },
        JIAN(state, value) {
            state.sum -= value
        },
    },
    state: {
        sum: 0,
        school: '123',
        subject: '456',
    },
    getters: {
        bigSum(state) {
            return state.sum * 10
        }
    }
}
//人员相关的配置
const personOptions = {
    namespaced: true,//使用命名空间下面名字才能在组件使用
    actions: {
        addPersonGuo(context, value) {
            if (value.name.indexOf('郭') === 0) {
                context.commit('ADD_PERSON', value)
            }else{
                alert('性不对')
            }

        }
    },
    mutations: {
        ADD_PERSON(state, value) {
            state.personList.unshift(value)
        }
    },
    state: {
        personList: [
            { id: '001', name: '123' },
            { id: '002', name: '123' },
            { id: '003', name: '123' },
        ]
    },
    getters: {
        firstPersonName(state) {
            return state.personList[0].name
        }
    }
}
export default new Vuex.Store({
    modules: {
        countOptions, personOptions
    }
})